package com.fxu.jushuitan.dto.order;

import com.fxu.jushuitan.dto.logistic.LogisticRes;
import lombok.Data;

import java.util.List;

/**
 * 订单查询请求返回[非淘系订单]
 * @author fangxu
 * @since 2023-09-18
 * @version 1.0.0
 **/
@Data
public class OrderQuerySml {
    /**
     * 线上订单号，最长不超过 20;唯一
     */
    private String soId;
    /**
     * 订单类型
     */
    private String type;
    /**
     * 订单来源
     */
    private String orderFrom;
    /**
     * 待付款：WaitPay；
     * 发货中：Delivering；
     * 被合并：Merged；
     * 异常：Question；
     * 被拆分：Split；
     * 等供销商|外仓发货：WaitOuterSent；
     * 已付款待审核：WaitConfirm；
     * 已客审待财审：WaitFConfirm；
     * 已发货：Sent；
     * 取消：Cancelled
     */
    private String status;
    /**
     * 合并订单信息
     */
    private String mergeSoId;
    /**
     * 订单创建时间
     */
    private String created;
    /**
     * 下单时间
     */
    private String orderDate;
    /**
     * 订单备注；卖家备注
     */
    private String remark;
    /**
     * 实际支付金额
     */
    private String paidAmount;
    /**
     * 支付时间
     */
    private String payDate;
    /**
     * 物流公司编码
     */
    private String lcId;
    /**
     * 快递公司
     */
    private String logisticsCompany;
    /**
     * 快递单号
     */
    private String lId;
    /**
     * 发货日期
     */
    private String sendDate;
    /**
     * ERP 内部订单号，唯一
     */
    private Integer oId;

    /**
     * 线下备注
     */
    private String node;

    /**
     * 修改时间
     */
    private String modified;

    /**
     * 被合并被拆分的订单内部单号
     */
    private Integer linkOId;

    /**
     * 被拆分合并的订单来源ID
     */
    private String linkSoId;
    /**
     * 合并订单信息
     */
    private List<String> __raw_so_ids__;

    /**
     * 物流信息
     */
    private List<LogisticRes> logistics;

    /**
     * 商品信息
     */
    private List<Item> items;

    @Data
    public static class Item {
        /**
         * 原始线上单号
         */
        private String rawSoId;
        /**
         * 商品编码，对应库存管理的 SKU
         */
        private String skuId;
        /**
         * 外部sku_id
         */
        private String shopSkuId;
        /**
         * 商品名称
         */
        private String name;
        /**
         * 款式编码
         */
        private String iId;
        /**
         * 商品状态
         */
        private String itemStatus;
        /**
         * 申请退款的状态 , 未申请：none；退款中：waiting；退款成功：success；退款关闭：closed
         */
        private String refundStatus;
        /**
         * 退款的唯一单号
         */
        private String refundId;
        /**
         * 子订单号，最长不超过 50
         */
        private String outerOiId;
        /**
         * 子订单号，最长不超过 20
         */
        private Integer oiId;
    }
}
